// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); 1win Online Casino Həyəcan Və Duyma Dünyasına Səyahətiniz 1 Win – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

1win Online Casino Həyəcan Və Duyma Dünyasına Səyahətiniz 1 WinThis tactic requires neither predictor signals nor a large budget.

Sizin ötrü yetər miqdar ödəniş metodları mövcud olacaq. Bukmeyker qısa müddətdə müsbət 1Win Rəyləri olan qocaman istifadəçi auditoriyası toplaya bilib. Doğrulamadan keçdikdə, ödəniş məlumatları şəxsiyyət vəsiqəsinə, eləcə də müştərinin adına bağlıdır.

  • Bundan sonra mərc edən sima öz hesabından istifadə etmək və istənilən idman tədbiri ötrü sövdələşmələr görmək olar.
  • Qeydiyyatdan keçmək və şəxsi hesabınıza daxil olmaq üçün düymələr də mülk.
  • 1win casino Administrasiyası 2,000-dən daha görkəmli provayderlərin 50 avtomatlarını bir layihədə birləşdirdi.

Əvvəlcə vahid güzgü açmalısınız, çünki sayt bloklana bilər. Belə təmtəraqlı yarış oyunçulara qumar oyuncaq həvəskarlarının vacib sorğularını bölünməz şəkildə təmin edə biləcək keyfiyyətli saytlar tapmağa imkan verir. Platforma bütün dünyada tanınır və həm təzə başlayanlar, həm də usta bettors tərəfindən mütləq etibar edilir. Layihənin mahiyyət xüsusiyyəti fəndgir mükafatlandırma sistemi, istifadənin rahatlığı və hər vahid müştəriyə sadiqlikdir. BK-nın funksionallığını diqqətlə təhlil edən mütəxəssislər onun fəaliyyətinin bütün sahələrini doğru şəkildə nəzərdən keçiriblər. PORTALA ilk dəfə daxil olarkən qonağa bukmeker şirkətinin mühüm xətti ilə tanış olmaq təklif olunur.

Spin Galaxy Welcome Bonus Up To $5000 On Registration

Bölmələrin altında əsl təkliflər olan banner yerləşdirilib. Baş ekranda şirkətin assortimentindən əsas variantlar göstərilmişdir. Səhifəni az çəkərək İstifadəçilər hətta filmlərə də baxa bilərlər.

Yəni CSS cədvəllərinin digər vahid yeri, mühərrik parametrləri. Həmçinin ziddiyyətli kateqoriyalarda, fərqli günlərdə, idman növləri və oyunlar üzrə müxtəlif bonuslar da mövcuddur. Bukmeker çalışır ki, dünyanın hər yerindən olan müxtəlif müştəriləri ödənişlər zamanı qətiyyən vahid problemlə qarşılşmasın. Burada perspektivli yeniliklər, həmçinin Fugaso, NetEnt, Spribe və ya Microgaming kimi nəhənglərin slotları mal. Əlbəttə ki, yerin dəyişdirilməsi qeydiyyat olmadan mümkündür. 1Win in istənilən təklifindən istifadə görmək ötrü ziyarətçi ilk öncə hesabını aktivləşdirməlidir.

In Nə Təklif Edir

Azərbaycanda 1win mərc istifadəçiləri pullarını eləmək və çıxarmaq üçün öz ölkələrində mövcud olan bir çox ödəniş sistemlərindən istifadə edə bilərlər. Onu həm internet saytında, həm də mobil proqramda tapa bilərsiniz. Tələb olunan bölməyə keçin və ödəniş sistemlərinin bütöv 1win siyahısını görmək üçün oxşar nişanı açın

Sayt çoxdillidir, əsasən Avropadan Asiyaya qədər 22 dil mövcuddur. Saytın əsl bölmələri arasında naviqasiya yuxarıdakı iz vasitəsilə həyata keçirilir; orada 20-dən daha element mülk. Bu seçimlər vasitəsilə naviqasiya İstənilən əyləncə əlbəəl və aydın şəkildə aparici verir. Əsas səhifədə bonuslu reklam bannerləri ilə yanaşı, istifadəçi indi aparici verən və canlı mərc edə biləcəyiniz hadisələr haqqında elan tapa biləcək.

Discover The Exciting 9 Pots Of Gold Slot Game Vəd Start Playing Now!

Bununla belə, 1win Aviator-da hər hansı fırıldaqları müzakirə etməyi sovet görmürük, çünki qadağan oluna bilərsiniz. Aviator 1win fırıldaqlarından istifadə görmək əvəzinə, doğru proqnozdan istifadə etməyə və bu cədvəli oxumağı öyrənə bilərsiniz. Bir daha oyunçu üçün prosedurun özü anlaşılmazdır, çünki buradakı ümumən “hadisələr” kompüter tərəfindən yaradılır. Bununla belə, alqoritmlər əsl edilə bilən həqiqət sınağından keçdi və bu, Spribe Gaming-in sənədləri ilə təsdiqlənir. Əgər uduzsanız, məbləği iki dönüm artırın və yenidən mərc edin. Maraqlıdır ki, Aviator Azerbaijan-da 1win-də heç bir məsafə yoxdur, çünki hər zad yalnız riyazi düsturlara bağlı işləyir.

  • Источник — 1WIN Источник — 1WIN Источник — 1WIN Источник — 1WIN Источник — 1WIN
  • 1win işləyən güzgü veb portalın dayanıqlığını artırır.
  • Ya istifadəçi zəfərli gəlir, ya diler, ya da effekt əsla heçə olur.
  • Bu, saytın veb versiyasını açmadan xüsusi quraşdırıla bilən müştəri vasitəsilə mərc etdiyiniz və kazinoda oynadığınız xüsusi proqramdır.
  • Uğurlu qeydiyyatdan sonra əlbəəl loqin şəxsi hesabınıza iç olmağı və özünüz haqqında məlumatları doldurmağı tövsiyə edirik.

İlk depoziti etsəniz, +200%, ikinci məbləği etsəniz – 150%, üçüncü – 100% və dördüncü – 50% alacaqsınız. Bonus pulunu bərpa görmək üçün daha azı 3 mərc əmsalı olan subay mərc etməlisiniz. Uduş olduğu halda uduş məbləği bonus kartdan ödəniləcək.

Azərbaycan Bukmeker Kontorundan Promosyonlar Və

Ya istifadəçi qalib gəlir, ya diler, ya da təsir heç heçə olur. Respublika vətəndaşlarının beynəlxalq platformalarda oynaması qadağan edilmir və hesab yaradarkən onların hərəkətləri qanunidir. Əlavə olaraq, müştərilərinə uçurumlu bonus və promosiyalar təqdim edərək onların qazancını artırmağa sədəqə edir.

  • Canlı dəstək xidmətindən bilavasitə çat üzərindən yararlana bilərsiniz.
  • Əksər VPN proqramlarıpulsuzdur və sərbəst axtarışda mövcüddur.
  • Saytın xətt, bədii və ya kazino bölməsinə keçin və sonra mərc etmək istədiyiniz hadisəni tapın.
  • Rəqibinizdən daha ən xal qazanmağa çalışın və ya diler sizi sayca məğlub edənə miqdar gözləyin.
  • Müştəri xidmətlərinin 7/24 dəstək göstərdiyini də qeyd etməkdə fayda mülk.

Fənlərin sayı cəlb edir, live və prematch də əla əmsallar əldə edilə bilər. Azərbaycanın və özgə ölkələrin yetkin sakinlərinə 1Win platformasında qeydiyyatdan keçməyə rüsxət verilir. Proqramı quraşdırdıqdan sonra oyunçu iç olub mərc yerləşdirə və ya qumar oynaya bilər. Kitab, ruhlanma axtaran, həyat enerjisindən, cəsarət və optimizmdən yararlanmaq istəyən hər kəs üçün faydalıdır. Bununla da mütəxəssislər müştərinin hesabını bloklayır və şifrəni dəyişdirmək üçün keçid göndərirlər. Onlar, oyunçulara daha yaxşı təcrübəni dolanmaq üçün lazım olan elliklə imkanları təklif edir.

Design and Develop by Ovatheme